package com.spsoft.core.model.leqidmz.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@ApiModel(value = "查询数电红字确认单明细信息结果")
@EqualsAndHashCode(callSuper = true)
@Data
public class QueryRedConfirmDetailVO extends BaseResponseVO {

    /**
     * 红字确认单 UUID
     */
    @ApiModelProperty(value = "红字确认单 UUID")
    private String uuid;

    /**
     * 红字发票信息确认单编号
     */
    @ApiModelProperty(value = "红字发票信息确认单编号")
    private String hzfpxxqrdbh;

    /**
     * 录入方身份
     */
    @ApiModelProperty(value = "录入方身份")
    private String lrfsf;

    /**
     *（销售方）统一社会信用代码/纳税人识别号/身份证件号码
     */
    @ApiModelProperty(value = "（销售方）统一社会信用代码/纳税人识别号/身份证件号码")
    private String xsfnsrsbh;

    /**
     * 销售方名称
     */
    @ApiModelProperty(value = "销售方名称")
    private String xsfmc;

    /**
     * （购买方）统一社会信用代码/纳税人识别号/身份证件号码
     */
    @ApiModelProperty(value = "（购买方）统一社会信用代码/纳税人识别号/身份证件号码")
    private String gmfnsrsbh;

    /**
     * 购买方名称
     */
    @ApiModelProperty(value = "购买方名称")
    private String gmfmc;

    /**
     * 蓝字发票代码
     */
    @ApiModelProperty(value = "蓝字发票代码")
    private String lzfpdm;

    /**
     * 蓝字发票号码
     */
    @ApiModelProperty(value = "蓝字发票号码")
    private String lzfphm;

    /**
     * 是否纸质发票标志
     */
    @ApiModelProperty(value = "是否纸质发票标志")
    private String sfzzfpbz;

    /**
     * 蓝字发票开票日期
     */
    @ApiModelProperty(value = "蓝字发票开票日期")
    private Date lzkprq;

    /**
     * 蓝字发票合计金额
     */
    @ApiModelProperty(value = "蓝字发票合计金额")
    private BigDecimal lzhjje;

    /**
     * 蓝字发票合计税额
     */
    @ApiModelProperty(value = "蓝字发票合计税额")
    private BigDecimal lzhjse;

    /**
     * 蓝字发票票种代码
     */
    @ApiModelProperty(value = "蓝字发票票种代码")
    private String lzfppzDm;

    /**
     * 蓝字发票特定要素类型代码
     */
    @ApiModelProperty(value = "蓝字发票特定要素类型代码")
    private String lzfpTdyslxDm;

    /**
     * 红字冲销金额
     */
    @ApiModelProperty(value = "红字冲销金额")
    private BigDecimal hzcxje;

    /**
     * 红字冲销税额
     */
    @ApiModelProperty(value = "红字冲销税额")
    private BigDecimal hzcxse;

    /**
     * 红字确认单明细数量
     */
    @ApiModelProperty(value = "红字确认单明细数量")
    private Long hzqrdmxsl;

    /**
     * 红字发票冲红原因代码
     */
    @ApiModelProperty(value = "红字发票冲红原因代码")
    private String chyyDm;

    /**
     * 红字确认信息状态代码
     */
    @ApiModelProperty(value = "红字确认信息状态代码")
    private String hzqrxxztDm;

    /**
     * 确认日期
     */
    @ApiModelProperty(value = "确认日期")
    private Date qrrq;

    /**
     * 已开具红字发票标志
     */
    @ApiModelProperty(value = "已开具红字发票标志")
    private String ykjhzfpbz;

    /**
     * 红字发票号码
     */
    @ApiModelProperty(value = "红字发票号码")
    private String hzfphm;

    /**
     * 红字开票日期
     */
    @ApiModelProperty(value = "红字开票日期")
    private Date hzkprq;

    /**
     * 有效标志
     */
    @ApiModelProperty(value = "有效标志")
    private String yxbz;

    /**
     * 录入日期
     */
    @ApiModelProperty(value = "录入日期")
    private Date lrrq;

    /**
     * 红字确认信息明细列表
     */
    @ApiModelProperty(value = "红字确认信息明细列表")
    private List<Hzqrxxmx> hzqrxxmxList;

    @ApiModel(value = "红字确认信息明细")
    @Data
    public static class Hzqrxxmx {

        /**
         * 序号
         */
        @ApiModelProperty(value = "序号")
        private Long xh;

        /**
         * 蓝字发票明细序号
         */
        @ApiModelProperty(value = "蓝字发票明细序号")
        private Long lzmxxh;

        /**
         * 商品和服务税收分类合并编码
         */
        @ApiModelProperty(value = "商品和服务税收分类合并编码")
        private String sphfwssflhbbm;

        /**
         * 货物或应税劳务、服务名称
         */
        @ApiModelProperty(value = "货物或应税劳务、服务名称")
        private String hwhyslwfwmc;

        /**
         * 商品服务简称
         */
        @ApiModelProperty(value = "商品服务简称")
        private String spfwjc;

        /**
         * 项目名称
         */
        @ApiModelProperty(value = "项目名称")
        private String xmmc;

        /**
         * 规格型号
         */
        @ApiModelProperty(value = "规格型号")
        private String ggxh;

        /**
         * 单位
         */
        @ApiModelProperty(value = "单位")
        private String dw;

        /**
         * 单价
         */
        @ApiModelProperty(value = "单价")
        private String fpspdj;

        /**
         * 数量
         */
        @ApiModelProperty(value = "数量")
        private String fpspsl;

        /**
         * 金额
         */
        @ApiModelProperty(value = "金额")
        private BigDecimal je;

        /**
         * 税率
         */
        @ApiModelProperty(value = "税率")
        private BigDecimal sl1;

        /**
         * 税额
         */
        @ApiModelProperty(value = "税额")
        private BigDecimal se;

        /**
         * 扣除额
         */
        @ApiModelProperty(value = "扣除额")
        private BigDecimal kce;

        /**
         * 优惠政策标识
         */
        @ApiModelProperty(value = "优惠政策标识")
        private String yhzcbs;
    }
}
